import { getInfo, setInfo } from '@/utils/storage'

export default {
  namespaced: true, // 开启命名空间
  // 提供数据
  state () {
    return {
      // 个人权证相关
      userInfo: getInfo()

    }
  },
  // 提供修改数据的方法
  mutations: {
    // 所有mutations的第一个参数，都是 state,由于是两个值，则传递一个对象
    setUserInfo (state, obj) {
      state.userInfo = obj
      setInfo(obj)
    }
  },
  // 提供异步操作
  actions: {
    logout (context) {
      // 个人信息 重置
      context.commit('setUserInfo', {})

      // 购物车信息重置 (需要跨模块 调用 mutation)  cart/setCartList

      // vuex 命名空间中 跨模块 {root:true} ->  调用全局根级别的action
      context.commit('cart/setCartList', [], { root: true })
    }
  },
  // 提供基于state所派生的方法
  getters: {}

}
